#ifndef OTHELLOGAMERULE_H
#define OTHELLOGAMERULE_H
#include "../framework/GameRule.h"
#include "../framework/Chess.h"
#include "../framework/Player.h"
class OthelloGameRule:public GameRule{
public:
    virtual bool checkAddPoint(QPoint&,Player*);
    virtual bool isAvalible(Player *);

    virtual void putChess(std::vector<QPoint>*,Player*);
    virtual Player* getFirstPlayer();
    virtual Player* getNextPlayer(Player *);
    virtual bool isWin();
    virtual int eatNum(QPoint&,Player*);
    virtual int eatNumByDirect(QPoint,int,int,Player*);
    virtual void eatByDirect(QPoint,int,int,Player*);
    virtual bool isInChessBoard(int,int);
    virtual int getScore(Player*);
    virtual void updateScore();
};

#endif // OTHELLOGAMERULE_H
